package com.py.credit.dao;

import com.py.credit.common.Page;
import com.py.credit.entity.ChartNum;
import com.py.credit.entity.FeedbackInfo;
import com.py.credit.entity.GzInfo;
import com.py.credit.entity.MessInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface LhjcHomePageDao {

    List<MessInfo> getAjbhList(@Param(value = "jclb") String jclb,
                               @Param(value = "cfbm") long cfbm,
                               @Param(value = "startTime") String startTime,
                               @Param(value = "endTime") String endTime);

    List<MessInfo> getAjbhtListForPage(@Param(value = "jclb") String jclb,
                                       @Param(value = "cfbm") long cfbm,
                                       @Param(value = "startTime") String startTime,
                                       @Param(value = "endTime") String endTime,
                                       @Param(value = "page") Page page);

    int getAjbhtListForTotalCount(@Param(value = "jclb") String jclb,
                                  @Param(value = "cfbm") long cfbm,
                                  @Param(value = "startTime") String startTime,
                                  @Param(value = "endTime") String endTime);

    List<MessInfo> getOhterAjbhList(@Param(value = "jclb") String jclb,
                                    @Param(value = "cfbm") long cfbm,
                                    @Param(value = "startTime") String startTime,
                                    @Param(value = "endTime") String endTime);

    List<MessInfo> getOtherAjbhtListForPage(@Param(value = "jclb") String jclb,
                                            @Param(value = "cfbm") long cfbm,
                                            @Param(value = "startTime") String startTime,
                                            @Param(value = "endTime") String endTime,
                                            @Param(value = "page") Page page);

    int getOtherAjbhtListForTotalCount(@Param(value = "jclb") String jclb,
                                       @Param(value = "cfbm") long cfbm,
                                       @Param(value = "startTime") String startTime,
                                       @Param(value = "endTime") String endTime);

    List<FeedbackInfo> getFeedbackListForPage(@Param(value = "deptId") long deptId,
                                              @Param(value = "startTime") String startTime,
                                              @Param(value = "endTime") String endTime,
                                              @Param(value = "page") Page page);

    int getFeedbackListForTotalCount(@Param(value = "deptId") long deptId,
                                     @Param(value = "startTime") String startTime,
                                     @Param(value = "endTime") String endTime);

    List<FeedbackInfo> getFeedbackList(@Param(value = "deptId") long deptId,
                                       @Param(value = "startTime") String startTime,
                                       @Param(value = "endTime") String endTime);

    List<FeedbackInfo> getOtherDeptFeedbackList(@Param(value = "deptId") long deptId,
                                                @Param(value = "startTime") String startTime,
                                                @Param(value = "endTime") String endTime);

    List<FeedbackInfo> getOtherDeptFeedbackListForPage(@Param(value = "deptId") long deptId,
                                                       @Param(value = "startTime") String startTime,
                                                       @Param(value = "endTime") String endTime,
                                                       @Param(value = "page") Page page);

    int getOtherDeptFeedbackListForTotalCount(@Param(value = "deptId") long deptId,
                                              @Param(value = "startTime") String startTime,
                                              @Param(value = "endTime") String endTime);

    List<GzInfo> selectGzInfoListForPage(@Param(value = "jclb") String jclb,
                                         @Param(value = "deptId") long deptId,
                                         @Param(value = "startTime") String startTime,
                                         @Param(value = "endTime") String endTime,
                                         @Param(value = "page") Page page);

    int selectGzInfoListForTotalCount(@Param(value = "jclb") String jclb,
                                      @Param(value = "deptId") long deptId,
                                      @Param(value = "startTime") String startTime,
                                      @Param(value = "endTime") String endTime);

    List<GzInfo> getGzInfoList(@Param(value = "jclb") String jclb,
                               @Param(value = "deptId") long deptId,
                               @Param(value = "startTime") String startTime,
                               @Param(value = "endTime") String endTime);

    List<GzInfo> selectOtherGzInfoListForPage(@Param(value = "jclb") String jclb,
                                              @Param(value = "deptId") long deptId,
                                              @Param(value = "startTime") String startTime,
                                              @Param(value = "endTime") String endTime,
                                              @Param(value = "page") Page page);

    int selectOtherGzInfoListForTotalCount(@Param(value = "jclb") String jclb,
                                           @Param(value = "deptId") long deptId,
                                           @Param(value = "startTime") String startTime,
                                           @Param(value = "endTime") String endTime);

    List<GzInfo> getOtherGzInfoList(@Param(value = "jclb") String jclb,
                                    @Param(value = "deptId") long deptId,
                                    @Param(value = "startTime") String startTime,
                                    @Param(value = "endTime") String endTime);

    List<ChartNum> selectFqNum(@Param(value = "cfbm") long cfbm,
                               @Param(value = "startTime") String startTime,
                               @Param(value = "endTime") String endTime);

    List<ChartNum> selectCyNum(@Param(value = "cfbm") long cfbm,
                               @Param(value = "startTime") String startTime,
                               @Param(value = "endTime") String endTime);

    List<ChartNum> selectXyNum(@Param(value = "deptId") long deptId,
                               @Param(value = "startTime") String startTime,
                               @Param(value = "endTime") String endTime);

    Map<String, String> selectMaxTime();

    Map<String, String> selectMinTime();
}
